package com.egao.orderB.biz;

import com.egao.common.core.web.JsonResult;
import com.egao.common.core.web.PageResult2;
import com.egao.common.system.entity.User;
import com.egao.orderB.entity.Bill;
import net.sf.json.JSONObject;
import org.apache.poi.ss.formula.functions.T;
import java.util.List;

/**
 *
 * 数据层接口
 * @author : Doman
 * @date : 2020-05-28 14:12:19
 * @version ：1.0
 */
public interface BillBiz {

	/** 获取实体类表格
	 * @param page
	 * @param bill
	 * @return
	 */
	public JSONObject list(PageResult2<T> page, Bill bill, User loginUser) throws Exception;
	
	/**
	 * 获取实体类表格
	 * @param bill
	 * @return
	 */
	public List<Bill> list(Bill bill, User loginUser);
	
	/**
	 * 根据Id查询实体类
	 * @param bill
	 * @return
	 */
	public Bill getById(Bill bill);
	
	/**
	 * 保存实体类
	 * @param bill
	 * @param loginUser
	 * @return
	 */
	public boolean save(Bill bill, User loginUser);

	/**
	 * 下单
	 * @param bill
	 * @param loginUser
	 * @return
	 */
	public Integer order(Bill bill, User loginUser);

	/**
	 * 做单
	 * @param bill
	 * @param loginUser
	 * @return
	 */
	public boolean make(Bill bill, User loginUser);

	/**
	 * 做单
	 * @param bill
	 * @param loginUser
	 * @return
	 */
	public boolean driverReceive(Bill bill, User loginUser);

	/**
	 * 提箱
	 * @param bill
	 * @param loginUser
	 * @return
	 */
	public boolean upBox(Bill bill, User loginUser);

	/**
	 * 到厂
	 * @param bill
	 * @param loginUser
	 * @return
	 */
	public boolean arrivedFactory(Bill bill, User loginUser);

	/**
	 * 离厂
	 * @param bill
	 * @param loginUser
	 * @return
	 */
	public boolean leaveFactory(Bill bill, User loginUser);

	/**
	 * 进港
	 * @param bill
	 * @param loginUser
	 * @return
	 */
	public boolean inPort(Bill bill, User loginUser);

	/**
	 * 发起费用清单
	 * @param bill
	 * @param loginUser
	 * @return
	 */
	public boolean costBill(Bill bill, User loginUser);

	/**
	 * 客服审核
	 * @param bill
	 * @param loginUser
	 * @return
	 */
	public boolean verify(Bill bill, User loginUser);

	/**
	 * 客服审核
	 * @param bill
	 * @param loginUser
	 * @return
	 */
	public boolean driverFeeVerify(Bill bill, User loginUser);

	/**
	 * 客户确认
	 * @param bill
	 * @param loginUser
	 * @return
	 */
	public boolean customerVerify(Bill bill, User loginUser);

	/**
	 * 修改实体类
	 * @param bill
	 * @param loginUser
	 * @return
	 */
	public boolean update(Bill bill, User loginUser);

	/**
	 * 修改实体类
	 * @param bill
	 * @param loginUser
	 * @return
	 */
	public boolean feeState(Bill bill, User loginUser);

	/**
	 * 删除实体类
	 * @param bill
	 * @param loginUser
	 * @return
	 */
	public boolean remove(Bill bill, User loginUser);

}
